package xiongwei.jiang.util;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Formatter;

/**
 * 自定义数学相关工具类
 *
 * @author 天之蓝
 */
public class MathUtils {
    /**
     * sha1 加密
     *
     * @param src 源
     * @return 流（“源”的反义词是“流”）
     * @author 天之蓝
     */
    public static String sha1Hex(String src) {
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
            messageDigest.reset();
            messageDigest.update(src.getBytes(StandardCharsets.UTF_8));
            return byteToHex(messageDigest.digest());
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalArgumentException(e);
        }
    }

    /**
     * 字节数组转十六进制字符串
     *
     * @param bytes 字节数组
     * @return 十六进制字符串
     * @author 天之蓝
     */
    public static String byteToHex(byte[] bytes) {
        Formatter formatter = new Formatter();
        for (byte b : bytes) {
            formatter.format("%02x", b);
        }
        String result = formatter.toString();
        formatter.close();
        return result;
    }
}
